Path tracking control for self-driving of vehicle with yaw moment distribution

ABSTRACT

A method includes determining a desired yaw moment to be applied to an ego vehicle during travel. The method also includes identifying yaw moment changes that are achievable using different torque vectoring techniques supported by the ego vehicle. The method further includes selecting at least one of the torque vectoring techniques based on the identified yaw moment changes. In addition, the method includes using the at least one selected torque vectoring technique to obtain the desired yaw moment and create lateral movement of the ego vehicle during the travel. In some cases, a desired response time associated with the lateral movement of the ego vehicle may be used, where steering control provides a faster response time and torque vectoring control provides a slower response time. The at least one torque vectoring technique may be selected based on different energy efficiencies associated with different ones of the torque vectoring techniques.

CROSS-REFERENCE TO RELATED APPLICATION AND PRIORITY CLAIM

This application claims priority under 35 U.S.C. § 120 as a continuationof U.S. patent application Ser. No. 17/449,419 filed on Sep. 29, 2021,which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

This disclosure relates generally to autonomous systems. Morespecifically, this disclosure relates to path tracking control forself-driving of a vehicle with yaw moment distribution.

BACKGROUND

Advanced driving assist system (ADAS) features use automated technologyto assist a vehicle's operator in driving and parking and form afoundation for autonomous driving (AD). Lateral control of an egovehicle's position within a traffic lane is one example of an ADAS or ADfeature that can be implemented for the ego vehicle, where the egovehicle refers to the vehicle on which one or more sensors used forADAS, AD, or other features are mounted. For example, lateral controlmay be used to help keep an ego vehicle at or near the center of atraffic lane during travel within the traffic lane (referred to as “lanecentering”), to help keep an ego vehicle within a traffic lane duringtravel (referred to as “lane keeping”), or to cause an ego vehicle tomove from one traffic lane to another traffic lane (referred to as “lanechanging”). Lateral control may also be used to control an ego vehiclein order to avoid a potential impact, such as by applying emergencybraking or evasive steering in order to avoid another vehicle or otherobject within the traffic lane of the ego vehicle.

SUMMARY

This disclosure relates to path tracking control for self-driving of avehicle with yaw moment distribution.

In a first embodiment, a method includes determining a desired yawmoment to be applied to an ego vehicle during travel. The method alsoincludes identifying yaw moment changes that are achievable usingdifferent torque vectoring techniques supported by the ego vehicle. Themethod further includes selecting at least one of the torque vectoringtechniques based on the identified yaw moment changes. In addition, themethod includes using the at least one selected torque vectoringtechnique to obtain the desired yaw moment and create lateral movementof the ego vehicle during the travel.

In a second embodiment, an apparatus includes at least one processingdevice configured to determine a desired yaw moment to be applied to anego vehicle during travel. The at least one processing device is alsoconfigured to identify yaw moment changes that are achievable usingdifferent torque vectoring techniques supported by the ego vehicle. Theat least one processing device is further configured to select at leastone of the torque vectoring techniques based on the identified yawmoment changes. In addition, the at least one processing device isconfigured to initiate use of the at least one selected torque vectoringtechnique to obtain the desired yaw moment and create lateral movementof the ego vehicle during the travel.

In a third embodiment, a non-transitory machine-readable medium containsinstructions that when executed cause at least one processor todetermine a desired yaw moment to be applied to an ego vehicle duringtravel. The medium also contains instructions that when executed causethe at least one processor to identify yaw moment changes that areachievable using different torque vectoring techniques supported by theego vehicle. The medium further contains instructions that when executedcause the at least one processor to select at least one of the torquevectoring techniques based on the identified yaw moment changes. Inaddition, the medium contains instructions that when executed cause theat least one processor to initiate use of the at least one selectedtorque vectoring technique to obtain the desired yaw moment and createlateral movement of the ego vehicle during the travel.

Other technical features may be readily apparent to one skilled in theart from the following figures, descriptions, and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of this disclosure and its advantages,reference is now made to the following description taken in conjunctionwith the accompanying drawings, in which like reference numeralsrepresent like parts:

FIG. 1 illustrates an example system supporting autonomous lateralcontrol of a vehicle using direct yaw moment control according to thisdisclosure;

FIGS. 2A and 2B illustrate example arrangements of components in avehicle supporting autonomous lateral control using direct yaw momentcontrol according to this disclosure;

FIG. 3 illustrates an example of autonomous lateral control of a vehicleusing direct yaw moment control according to this disclosure;

FIG. 4 illustrates an example method for autonomous lateral control of avehicle using direct yaw moment control according to this disclosure;

FIG. 5 illustrates an example system supporting path tracking controlfor self-driving with yaw moment distribution according to thisdisclosure;

FIG. 6 illustrates an example allocation of a desired yaw moment duringpath tracking control for self-driving according to this disclosure;

FIG. 7 illustrates an example identification of an allocation for adesired yaw moment based on different torque vectoring approaches duringpath tracking control for self-driving according to this disclosure;

FIG. 8 illustrates example potentials of force and yaw moments fromdifferent torque vectoring approaches during path tracking control forself-driving according to this disclosure;

FIG. 9 illustrates an example method for path tracking control forself-driving with yaw moment distribution according to this disclosure;

FIG. 10 illustrates an example design flow for employing one or moretools to design hardware that implements one or more vehicle controlfunctions according to this disclosure; and

FIG. 11 illustrates an example device supporting execution of one ormore tools to design hardware that implements one or more vehiclecontrol functions according to this disclosure.

DETAILED DESCRIPTION

FIGS. 1 through 11 , described below, and the various embodiments usedto describe the principles of this disclosure are by way of illustrationonly and should not be construed in any way to limit the scope of thisdisclosure. Those skilled in the art will understand that the principlesof this disclosure may be implemented in any type of suitably arrangeddevice or system.

As noted above, advanced driving assist system (ADAS) features useautomated technology to assist a vehicle's operator in driving andparking and form a foundation for autonomous driving (AD). Lateralcontrol of an ego vehicle's position within a traffic lane is oneexample of an ADAS or AD feature that can be implemented for the egovehicle, where the ego vehicle refers to the vehicle on which one ormore sensors used for ADAS, AD, or other features are mounted. Forexample, lateral control may be used to help keep an ego vehicle at ornear the center of a traffic lane during travel within the traffic lane(referred to as “lane centering”), to help keep an ego vehicle within atraffic lane during travel (referred to as “lane keeping”), or to causean ego vehicle to move from one traffic lane to another traffic lane(referred to as “lane changing”). Lateral control may also be used tocontrol an ego vehicle in order to avoid a potential impact, such as byapplying emergency braking or evasive steering in order to avoid anothervehicle or other object within the traffic lane of the ego vehicle.

In a vehicle with a conventional internal combustion engine, adrivetrain of the vehicle is used to distribute power from the engine tothe wheels of the vehicle, and the drivetrain typically includes adifferential gear train that helps to distribute the power to left andright wheels of the vehicle while allowing those wheels to turn atdifferent rates. In electric vehicles, the configuration of thepowertrain is far more flexible since electric vehicles may includevarious numbers of motor configurations. Example motor configurationscan include one motor in front, one motor in back, multiple motors infront, multiple motors in back, or any suitable combination thereof. Insome cases, each individual wheel of an electric vehicle can have itsown independent powertrain. Among other things, these various motorconfigurations permit different ways of providing “torque vectoring,”which refers to the ability to cause a vehicle to move laterally (leftor right) by controlling the torques applied to different wheels of thevehicle (rather than turning the vehicle's steering wheel). Torquevectoring is performed by applying different torques to left and rightwheels of a vehicle, which causes the vehicle to move laterally in thedirection of the wheel having the lower torque.

In one aspect, this disclosure provides techniques for processinginformation (such as an estimated path to be taken by an ego vehicle,full nonlinear kinematics of the ego vehicle, and a single-track dynamicmodel) to identify how to perform actuation of torque vectoring in orderto follow the estimated path. As described in more detail below, theestimated path to be taken by the ego vehicle can be determined in anysuitable manner, such as by using information from a vision system (likeone or more cameras) and by performing motion planning. The actuation oftorque vectoring can then be based on the estimated path of the egovehicle in order to achieve desired lateral control of the ego vehicleusing the torque vectoring. Among other things, this may allow thetorque vectoring actuation to be tied to lane perception information oflateral offset, heading offset, curvature, rate of curvature, or otherinformation. For example, a desired yaw rate and a desired yawacceleration for the ego vehicle can be determined, and a desired yawmoment for the ego vehicle can be determined based on the desired yawrate and the desired yaw acceleration. The desired yaw moment can thenbe distributed to multiple wheels of the ego vehicle, and thisdistribution can depend on the actual configuration of the ego vehicle.Overall, this allows the desired yaw moment to be converted to differentwheel torques for different wheels of the ego vehicle, therebyimplementing the desired torque vectoring actuation and enablingautonomous lateral control of the ego vehicle.

In another aspect, this disclosure provides techniques for implementingpath tracking control during self-driving, which can be achieved viasuitable yaw moment distributions. As described in more detail below, adetermined yaw moment for an ego vehicle can often be implemented in anumber of ways due to the various possible configurations of the egovehicle, meaning the ego vehicle may represent an “over-actuated”system. For example, path tracking may be implemented by changing theactual steering direction of the ego vehicle or by using brakingsystems, energy regeneration systems, and/or motor control to providetorque vectoring within the ego vehicle. The specific mechanism ormechanisms used to provide path tracking in an ego vehicle at a givenpoint in time may be selected based on one or more criteria, such as anestimated response time for achieving a desired lateral movement of theego vehicle and an energy efficiency that may be obtained during thedesired lateral movement of the ego vehicle. As a particular example,lane centering, lane keeping, and lane changing may often involve sloweractuation (so torque vectoring may be used), while evasive steering mayoften involve much faster actuation (so steering changes may be used).This allows the desired yaw moment to be distributed to one or moresystems of the ego vehicle in an improved or optimal manner.

FIG. 1 illustrates an example system 100 supporting autonomous lateralcontrol of a vehicle using direct yaw moment control according to thisdisclosure. In this particular example, the system 100 takes the form ofan automotive vehicle, such as an electric vehicle. However, any othersuitable system may support autonomous lateral control, such as othertypes of vehicles, autonomous robots, or other systems.

As shown in FIG. 1 , the system 100 includes at least one processor 102configured to control one or more operations of the system 100. In thisexample, the processor 102 may interact with one or more sensors 104 andwith one or more components coupled to a bus 106. In this particularexample, the one or more sensors 104 include one or more cameras orother imaging sensors, and the bus 106 represents a controller areanetwork (CAN) bus. However, the processor 102 may interact with anyadditional sensor(s) and communicate over any other or additionalbus(es).

In this example, the sensors 104 include one or more cameras 104 a thatgenerate images (such as visual or infrared images) of scenes around thesystem 100. Other or additional types of sensors that could be used hereinclude one or more radio detection and ranging (RADAR) sensors, lightdetection and ranging (LIDAR) sensors, other types of imaging sensors,or inertial measurement units (IMUs). In general, any suitable type(s)of sensor(s) 104 may be used to collect information for processing bythe system 100, and this disclosure is not limited to any specifictype(s) of sensor(s) 104. Measurements or other data from the sensors104 are used by the processor 102 or other component(s) as describedbelow to generate a prediction of the estimated path of the system 100,such as to identify the estimated path of a vehicle traveling in atraffic lane, and to control the movements of the system 100 along theestimated path. In some cases, the sensors 104 may include a singlecamera 104 a, such as one camera positioned on the front of a vehicle.In other cases, the sensors 104 may include multiple cameras 104 a, suchas one camera positioned on the front of a vehicle, one camerapositioned on the rear of the vehicle, and two cameras positioned onopposite sides of the vehicle.

The processor 102 can process the information from the sensors 104 inorder to detect objects around or proximate to the system 100, such asone or more vehicles, obstacles, or people near the system 100. Theprocessor 102 can also process the information from the sensors 104 inorder to perceive lane-marking lines or other markings on a road, floor,or other surface. The processor 102 can further use various informationto generate predictions associated with the system 100, such as topredict the future path(s) of the system 100 or other vehicles, identifya center of a traffic lane in which the system 100 is traveling, orpredict the future locations of objects around the system 100. Asdescribed below, the predicted or desired path of the system 100 can beused to implement direct yaw moment control of the system 100, whichthereby enables autonomous lateral control of the system 100.

In this example, the processor 102 performs an object detection/trackingfunction 108, which generally involves identifying objects around thesystem 100 in a real-time manner based on information from the sensor(s)104. For example, the object detection/tracking function 108 can useimages from one or more cameras 104 a or other sensor information toidentify external objects around the system 100, such as other vehiclesmoving around or towards the system 100 or pedestrians or objects nearthe system 100. The object detection/tracking function 108 can alsoidentify one or more characteristics of each of one or more detectedobjects, such as an object class (a type of object) and a boundary (suchas a bounding box) around the detected object. The objectdetection/tracking function 108 can further track one or more of thedetected objects over time, such as by collecting position informationor other information associated with the same object at different times.The object detection/tracking function 108 can output informationidentifying each detected object and its associated characteristic(s).The object detection/tracking function 108 can use any suitabletechnique to perform object detection and tracking, such as by using atrained machine learning model.

The processor 102 also performs a behavior prediction function 110,which generally involves using information to predict the behavior ofthe system 100 itself and possibly to predict the behavior of one ormore detected objects. For example, the behavior prediction function 110may use information about lane-marking lines, positions of otherobjects, and other information to estimate the future path of the system100. As particular examples, the behavior prediction function 110 mayuse this or other information to identify an estimated path of thesystem 100 to be followed in order to keep the system 100 within orcentered in a current traffic lane or to move the system 100 from onetraffic lane to another traffic lane. The behavior prediction function110 may also merge information associated with detected objects, such asby combining measurements or other information about the same detectedobjects, and estimate the future position(s) of each detected objectrelative to the system 100. For instance, the behavior predictionfunction 110 may generate a polynomial identifying the expected path tobe taken by the system 100 and a polynomial identifying the expectedpath to be taken by another vehicle near the system 100. The behaviorprediction function 110 can use any suitable technique to performbehavior prediction, such as by using a curve fitting or filteringalgorithm to estimate the path of the system 100 or a detected object.

Information from the behavior prediction function 110 (and possiblyinformation from one or more other sources) may be provided to adecision planning function 112, which generally uses this information todetermine how to adjust the operation of the system 100. For example,the decision planning function 112 may determine whether (and how) tochange the steering direction of the ego vehicle (the system 100),whether (and how) to apply the brakes or accelerate the vehicle, orwhether (and how) to trigger an audible, visible, haptic, or otherwarning. The warning may indicate that the system 100 is near anothervehicle, obstacle, or person, is departing from a current traffic lanein which the vehicle is traveling, or is approaching a possible impactlocation with another vehicle, obstacle, or person. In general, theidentified adjustments determined by the decision planning function 112can vary widely based on the specific application.

The decision planning function 112 can interact with one or more controlfunctions 114, each of which can be used to adjust or control theoperation of one or more actuators 116 in the system 100. For example,in an automotive vehicle, the one or more actuators 116 may representone or more brakes, electric motors, or steering components of thevehicle, and the control function(s) 114 can be used to apply ordiscontinue application of the brakes, speed up or slow down theelectric motors, or change the steering direction of the vehicle. Ingeneral, the specific ways in which the operations of the system 100 canvary depend on the specific system 100 being used.

In this example, the decision planning function 112 performs apath-tracking control function 112 a, which is generally used todetermine a desired path of the system 100 and how the desired path maybe followed by the system 100. For example, the path-tracking controlfunction 112 a can use feedback linearization and determine the desiredyaw rate and yaw acceleration that may be needed to keep the system 100traveling along a desired path. Example operations performed by thepath-tracking control function 112 a are provided below. Also, in thisexample, the one or more control functions 114 include a torquevectoring force distribution function 114 a, which is generally used todetermine how to perform torque vectoring via direct yaw moment controlbased on the desired yaw rate and yaw acceleration. For instance, thetorque vectoring force distribution function 114 a can identify one ormore yaw moments based on the desired yaw rate and yaw acceleration anddetermine the right/left and front/rear forces to be used to provide theone or more yaw moments. The torque vectoring force distributionfunction 114 a can then cause the torque vectoring to occur in theidentified manner, which will ideally keep the system 100 travelingalong the desired path. Example operations performed by the torquevectoring force distribution function 114 a are provided below.

Note that the functions 108-114 shown in FIG. 1 and described above maybe implemented in any suitable manner in the system 100. For example, insome embodiments, various functions 108-114 may be implemented orsupported using one or more software applications or other softwareinstructions that are executed by at least one processor 102. In otherembodiments, at least some of the functions 108-114 can be implementedor supported using dedicated hardware components. In general, thefunctions 108-114 described above may be performed using any suitablehardware or any suitable combination of hardware and software/firmwareinstructions.

The processor 102 itself may also be implemented in any suitable manner,and the system 100 may include any suitable number(s) and type(s) ofprocessors or other processing devices in any suitable arrangement.Example types of processors 102 that may be used here include one ormore microprocessors, microcontrollers, digital signal processors(DSPs), application specific integrated circuits (ASICs), fieldprogrammable gate arrays (FPGAs), or discrete circuitry. Each processor102 may also have any suitable number of processing cores or engines. Insome cases, multiple processors 102 or multiple processing cores orengines in one or more processors 102 may be used to perform thefunctions 108-114 described above. This may allow, for instance, theprocessor(s) 102 to be used to process information and perform commontasks or different tasks in parallel.

Although FIG. 1 illustrates one example of a system 100 supportingautonomous lateral control of a vehicle using direct yaw moment control,various changes may be made to FIG. 1 . For example, various functionsand components shown in FIG. 1 may be combined, further subdivided,replicated, omitted, or rearranged and additional functions andcomponents may be added according to particular needs. Also, as notedabove, the functionality for autonomous lateral control of a vehiclebased on direct yaw moment control may be used in any other suitablesystem, and the system may or may not relate to automotive vehicles orother vehicles.

FIGS. 2A and 2B illustrate example arrangements of components in avehicle 200, 250 supporting autonomous lateral control using direct yawmoment control according to this disclosure. For ease of explanation,the vehicles 200, 250 shown in FIGS. 2A and 2B are described asrepresenting or forming at least a portion of the system 100 shown inFIG. 1 . However, the vehicles 200, 250 shown in FIGS. 2A and 2B may beused in or with any other suitable device or system.

As shown in FIG. 2A, the vehicle 200 includes four wheels 202 a-202 d.Rotation of the wheels 202 a-202 d is produced using a motor 204 apositioned in a front portion of the vehicle 200 and/or a motor 204 bpositioned in a rear portion of the vehicle 200. Depending on theimplementation, the vehicle 200 may include the motor 204 a, the motor204 b, or the motors 204 a-204 b. Each wheel 202 a-202 d may have anassociated braking system 206 a-206 d, where each braking system 206a-206 d can be used to slow the rotation of the associated wheel 202a-202 d. In some cases, at least some of the wheels 202 a-202 d may eachhave an associated energy regeneration system 208 a-208 d, which can beused to capture energy from rotation of the associated wheel 202 a-202 dand use the captured energy to recharge a battery subsystem or otherpower source 210 of the vehicle 200.

In the vehicle 200, torque vectoring may occur in two ways. First, whenat least one motor 204 a or 204 b is driving rotation of at least oneassociated pair of wheels 202 a-202 b or 202 c-202 d, the braking system206 a, 206 b, 206 c, 206 d of one wheel can be applied to a greaterextent, and the braking system 206 a, 206 b, 206 c, 206 d of anotherwheel can be applied to a lesser extent or not at all. For example, thebraking system 206 a or 206 c may be applied more than the brakingsystem 206 b or 206 d. Second, when at least one motor 204 a or 204 b isdriving rotation of at least one associated pair of wheels 202 a-202 bor 202 c-202 d, the energy regeneration system 208 a, 208 b, 208 c, 208d of one wheel can be applied to a greater extent, and the energyregeneration system 208 a, 208 b, 208 c, 208 d of another wheel can beapplied to a lesser extent or not at all. For instance, the energyregeneration system 208 a or 208 c may be applied more than the energyregeneration system 208 b or 208 d. In either case, less torque isapplied to the wheel 202 a or 202 c and more torque is applied to thewheel 202 b or 202 d. The result is that the vehicle 200 laterally movesto the left due to the presence of more torque along the right side ofthe vehicle 200. Similar operations may occur to move the vehicle 200laterally to the right by creating more torque along the left side ofthe vehicle 200. Note that either or both of braking system control andenergy regeneration system control may be used to cause this lateralmovement of the vehicle 200.

As shown in FIG. 2B, the vehicle 250 includes four wheels 252 a-252 d.Each wheel 252 a-252 d may have an associated braking system 256 a-256d, where each braking system 256 a-256 d can be used to slow therotation of the associated wheel 252 a-252 d. In some cases, at leastsome of the wheels 252 a-252 d may each have an associated energyregeneration system 258 a-258 d, which can be used to capture energyfrom rotation of the associated wheel 252 a-252 d and use the capturedenergy to recharge a battery subsystem or other power source 260 of thevehicle 250. In this example, rotation of the wheels 252 a-252 d isproduced using a pair of motors 254 a-254 b positioned in a frontportion of the vehicle 250 and/or a pair of motors 254 c-254 dpositioned in a rear portion of the vehicle 250. Depending on theimplementation, the vehicle 250 may include the motors 254 a-254 b, themotors 254 c-254 d, or the motors 254 a-254 d.

In the vehicle 250, torque vectoring may occur in three ways. First, asdiscussed above, different braking systems 256 a, 256 b, 256 c, 256 dmay be applied differently in order to create more torque along one sideof the vehicle 250 and less torque along the other side of the vehicle250. Second, as discussed above, different energy regeneration systems258 a, 258 b, 258 c, 258 d may be applied differently in order to createmore torque along one side of the vehicle 250 and less torque along theother side of the vehicle 250. Third, the motors 254 a, 254 b, 254 c,254 d may be controlled to produce different amounts of torque on thewheels 252 a, 252 b, 252 c, 252 d, which is often referred to as “motordriving” control. For example, the motor 254 a or 254 c may apply moretorque to the wheel 252 a or 252 c than the motor 254 b or 254 d appliesto the wheel 252 b or 252 d. The result is that the vehicle 250laterally moves to the right due to the presence of more torque alongthe left side of the vehicle 250. Similar operations may occur to movethe vehicle 250 laterally to the left by creating more torque along theright side of the vehicle 250. Note that braking system control, energyregeneration system control, and/or motor control may be usedindividually or in any suitable combination to cause this lateralmovement of the vehicle 200.

As described in more detail below, any of these techniques may be usedto control the lateral movement of the system 100. For example, thetorque vectoring force distribution function 114 a may use the desiredyaw rate and yaw acceleration from the decision planning function 112 inorder to determine the desired yaw moment for the system 100. The torquevectoring force distribution function 114 a may then distribute thedesired yaw moment for implementation using any of the torque vectoringtechniques that are supported in the specific system 100. Ideally, thetorque vectoring will cause the system 100 to perform lane centering,lane keeping, lane changing, impact avoidance, or other functions.

Although FIGS. 2A and 2B illustrate examples of arrangements ofcomponents in a vehicle 200, 250 supporting autonomous lateral controlusing direct yaw moment control, various changes may be made to FIGS. 2Aand 2B. For example, various components shown in FIG. 2 may be combined,further subdivided, replicated, omitted, or rearranged and additionalfunctions and components may be added according to particular needs. Asa particular example, a vehicle may not include one braking system andone energy regeneration system per wheel. In general, a vehicle mayinclude any suitable number of wheels, any suitable number of brakingsystems, and (optionally) any suitable number of energy regenerationsystems.

FIG. 3 illustrates an example of autonomous lateral control 300 of avehicle 302 using direct yaw moment control according to thisdisclosure. For ease of explanation, the autonomous lateral control 300shown in FIG. 3 is described as involving the system 100 shown in FIG. 1, which may include one of the vehicles 200, 250 shown in FIGS. 2A and2B. However, the autonomous lateral control 300 shown in FIG. 3 may beused in or with any other suitable device or system.

As shown in FIG. 3 , a vehicle 302 includes a longitudinal axis 304 anda center point 306. The longitudinal axis 304 extends through a centerof the vehicle 302 along the length (as measured front-to-back) of thevehicle 302. The center point 306 represents a center of gravity orpivot point of the vehicle 302 and denotes the point about which yaw canbe applied to cause lateral movement (left or right movement) of thevehicle 302. The vehicle 302 here is shown as traveling along apredicted or desired path, which is referred to as a reference path 308.In some cases, the reference path 308 may represent the center of acurrent traffic lane in which the vehicle 302 is traveling, although thereference path 308 may represent any other suitable path of travel forthe vehicle 302. Note that while the reference path 308 is shown here asbeing separated from the vehicle 302 by a certain amount of space, thisis done for ease of illustration only. The vehicle 302 may actually betraveling on or along the reference path 308, in which case the vehicle302 may be controlled so that the center point 306 of the vehicle 302follows the reference path 308 as closely as possible.

Two coordinate systems are also illustrated in FIG. 3 . A Cartesiancoordinate system 310 here defines an x-axis and a y-axis, where thesetwo axes are orthogonal to one another. In this example, the x-axis andthe y-axis are fixed, which means the axes point in the same directionregardless of the reference path 308 or the direction of travel of thevehicle 302. A vehicle-based coordinate system (such as a Frenetcoordinate system) 312 here defines an r-axis and an s-axis, where thesetwo axes are again orthogonal to one another. The s-axis is used todefine the vehicle's longitudinal displacement along a road or otherreference path 308, and the r-axis is used to define the vehicle'slateral displacement within the road (such as within a lane or within acollection of lanes). The axes of the vehicle-based coordinate system312 are not fixed and can vary as the reference path 308 curves andturns.

As noted above, the path-tracking control function 112 a can operate toidentify a desired yaw rate and a desired yaw acceleration to be used tohelp keep the vehicle 302 on the reference path 308 using (among otherthings) torque vectoring. In some embodiments, the path-tracking controlfunction 112 a can operate as follows.

Full nonlinear kinematics of the vehicle 302 can be based on thevehicle's coordinates within the vehicle-based coordinate system 312.For example, the center point 306 of the vehicle 302 can be projected toa point P on the reference path 308. This defines an angle ω_(p) betweenthe s-axis of the vehicle-based coordinate system 312 and the x-axis ofthe Cartesian coordinate system 310, meaning the angle ψ_(p) identifiesan orientation of the reference path 308 at the projection point Pwithin the Cartesian coordinate system 310. A velocity vector 314associated with the vehicle 302 defines at least the direction of travelof the vehicle 302 at a particular instance of time. An angle ψ isdefined between the x-axis of the Cartesian coordinate system 310 andthe longitudinal axis 304 of the vehicle 302, meaning the angle ψidentifies an orientation of the vehicle's longitudinal axis 304 withinthe Cartesian coordinate system 310. An angle β is defined between thelongitudinal axis 304 of the vehicle 302 and the velocity vector 314,meaning the angle β identifies the side-slip angle of the vehicle 302(which refers to the angle between the longitudinal axis 304 of thevehicle 302 and the instantaneous direction of travel of the vehicle302). An angle θ is defined between the s-axis of the vehicle-basedcoordinate system 312 and the velocity vector 314, meaning the angle θidentifies the relative course angle of the vehicle 302 within thevehicle-based coordinate system 312. A value κ denotes a measure of thecurvature of the reference path 308 at the projection point P.

By projecting a reference point (the center point 306 of the vehicle302) onto the reference path 308 and by introducing a vehicle-basedcoordinate frame defined as (P, s, r) at the projection point P, thekinematics of the vehicle 302 may be described relative to the referencepath 308. Any suitable projection technique may be used here to projectthe vehicle's reference point onto the reference path 308. One commonprojection technique is an orthogonal projection that defines theprojection point P such that a connecting line between a point C (thecenter point 306 of the vehicle 302) and the projection point P isorthogonal to the tangent to the reference path 308 at the projectionpoint P. Another common projection technique is a parallel projectionthat defines the projection point P by the intersection of the referencepath 308 with the y-axis of the vehicle-based coordinate system 312.While the parallel projection may be easier to compute, the orthogonalprojection can have certain advantages in some instances. For example,since the orthogonal projection is invariant to vehicle rotation, theprojection point P monotonically travels along the reference path 308over time (as long as the vehicle velocity remains positive). Whileorthogonal projection is used in the following discussion, parallelprojection or any other suitable projection technique may be used here.

These definitions can be used to express the full nonlinear kinematicsof the vehicle 302 as follows. The vehicle 302 can be said to travelexactly along the reference path 308 if the reference point P lies onthe reference path 308 and the velocity vector 314 of the vehicle 302 istangent to the reference path 308. The relative course angle θ of thevehicle 302 can therefore be expressed as θ=β+ψ−ψ_(p), since ψ_(p) isthe orientation of the reference path 308 at the projection point P. Thevehicle kinematics can therefore be expressed as follows.

$\begin{matrix}{\overset{.}{s} = {{\frac{v{\cos(\theta)}}{1 - {\kappa r}}{s(0)}} = s_{0}}} & (1) \\{\overset{.}{r} = {{v{\sin(\theta)}{r(0)}} = r_{0}}} & (2) \\{\overset{.}{\theta} = {{{\overset{.}{\beta} + \omega - {\frac{v\kappa{\cos(\theta)}}{1 - {\kappa r}}{\theta(0)}}}\&} = \theta_{0}}} & (3)\end{matrix}$

The curvature κ can be defined as the derivative of the orientation ofthe vehicle 302 with respect to the traveled distance along thereference path 308 and may be interpreted as the reciprocal of the localcurve radius. Equation (1) here describes how fast the vehicle 302 movesalong the reference path 308, and it is derived by taking the fractionof the vehicle's velocity tangent to the path 308 (ν cos(θ)) andapplying the rule of three. Equation (1) plays an important role inderiving the vehicle's dynamics but is usually ignored in lateral motioncontrol. This illustrates one benefit of using Frenet coordinates orother vehicle-based coordinates in lateral control, namely that thenumber of relevant differential equations can be reduced. Equation (2)here describes how fast the vehicle 302 moves laterally, and Equation(3) here describes how fast the vehicle 302 is changing its relativecourse angle.

Motion control tasks are often simplified when describing vehicle motionin Frenet coordinates or other vehicle-based coordinates since only thelateral offset r from the s-axis may need to be regulated. To accountfor nonlinear vehicle kinematics, feedback linearization can be used bythe path-tracking control function 112 a. Feedback linearization startsby defining a controlled output z and deriving the output with respectto time until a control input u appears in the equation. For moderatecurvature changes (such as those that are expected to occur onhighways), path dynamics are much slower than vehicle dynamics. Thus, tosimplify the design of the path-tracking control function 112 a, thevehicle dynamics can be neglected here, and the side-slip angle (the βangle) can be treated as a known time-varying parameter similar tolongitudinal velocity. By defining the lateral offset of the vehicle 302as the controlled output z, the first two derivatives of the controlledoutput z can be determined as follows.

$\begin{matrix}{z = r} & (4) \\{\overset{.}{z} = {\overset{.}{r} = {v{\sin(\theta)}}}} & (5)\end{matrix}$ $\begin{matrix}{\overset{¨}{z} = {{v{\cos(\theta)}\overset{.}{\theta}} = {{v{\cos(\theta)}\left( {\overset{.}{\beta} + \omega - \frac{v\kappa{\cos(\theta)}}{1 - {\kappa r}}} \right)}\overset{\overset{.}{\beta} = 0}{=}{{v{\cos(\theta)}\left( {\omega - \frac{v\kappa{\cos(\theta)}}{1 - {\kappa r}}} \right)} = \eta_{1}}}}} & (6)\end{matrix}$

Equating Equation (6) with a virtual input η₁ and solving for the yawrate can yield a feedback linearizing control law as follows

$\begin{matrix}{\omega_{d} = {\underset{\underset{feedback}{︸}}{\frac{\eta_{1}}{v{\cos(\theta)}}} + \underset{\underset{feedforward}{︸}}{\frac{v\kappa{\cos(\theta)}}{1 - {\kappa r}}}}} & (7)\end{matrix}$

The first term in Equation (7) can be considered a feedback term basedon offsets from the reference path 308, while the second term inEquation (7) can be considered a feedforward term that is dependent onthe reference path's curvature. The desired yaw acceleration can bederived from one more additional derivatives of the above as follows.

=ν cos(θ)({dot over (ω)}−ν²{dot over (κ)} cos(θ)+νκ sin(θ)(ω−νκcos(θ)))−ν sin(θ)(ω−νκ cos(θ))²=η₂  (8)

where {dot over (ω)} denotes the yaw acceleration and {dot over (κ)}denotes the rate of curvature. By equating Equation (8) with a virtualinput η₂ and solving for η₂ to find a linearizing control law, thestates of the control system can be expressed as follows.

$\begin{matrix}{\xi = \begin{bmatrix}r \\{v{\sin(\theta)}} \\{v{\cos(\theta)}\left( {\omega - {v\kappa{\cos(\theta)}}} \right)}\end{bmatrix}} & (9) \\{\overset{.}{\xi} = {{\begin{bmatrix}0 & 1 & 0 \\0 & 0 & 1 \\0 & 0 & 0\end{bmatrix}\xi} + {\begin{Bmatrix}0 \\0 \\1\end{Bmatrix}\eta_{2}}}} & (10)\end{matrix}$

The desired yaw acceleration can be determined as follows.

$\begin{matrix}{{\overset{.}{\omega}}_{d} = {{{- v}\kappa{\sin(\theta)}\left( {\omega_{d} - {v\kappa{\cos(\theta)}}} \right)} + {v\overset{.}{\kappa}{\cos(\theta)}} + {\frac{1}{v{\cos(\theta)}}\left( {\eta_{2} + {v{\sin(\theta)}\left( {\omega_{d} - {v\kappa{\cos(\theta)}}} \right)^{2}}} \right)}}} & (11)\end{matrix}$

Thus, the path-tracking control function 112 a may use this approach toidentify the desired yaw rate and the desired yaw acceleration for thevehicle 302.

Once the desired yaw rate and the desired yaw acceleration for thevehicle 302 are determined, the torque vectoring force distributionfunction 114 a can determine the desired yaw moment for the vehicle 302in order to keep the vehicle 302 traveling along the reference path 308.The torque vectoring force distribution function 114 a can also identifya distribution of the desired yaw moment into individual wheels of thevehicle 302. In some embodiments, the torque vectoring forcedistribution function 114 a can operate as follows.

For higher speeds and moderate lateral accelerations, the dynamics ofthe vehicle 302 can be described by a linear single-track model withstates associated with the side-slip angle (the β angle) and the yawrate (denoted ω in FIG. 3 ). Inputs to the linear single-track model caninclude front road wheel angle (denoted δ_(f)) and yaw moment (denotedM_(z)). The dynamics of the vehicle 302 in this model may be formulatedwith respect to the center of gravity (COG) of the vehicle 302 (thecenter point 306). In some cases, the dynamics of the vehicle 302 can bedefined by a velocity-dependent state-space model as follows.

$\begin{matrix}{\underset{\underset{\overset{.}{x}}{︸}}{\begin{bmatrix}\overset{.}{\beta} \\\overset{.}{\omega}\end{bmatrix}} = {{\underset{\underset{A(v)}{︸}}{\begin{bmatrix}{- \frac{\left( {C_{r} + C_{f}} \right)}{mv}} & {\frac{\left( {{l_{r}C_{r}} - {l_{f}C_{f}}} \right)}{{mv}^{2}} - 1} \\\frac{\left( {{l_{r}C_{r}} - {l_{f}C_{f}}} \right)}{I_{z}} & {- \frac{\left( {{l_{r}^{2}C_{r}} + {l_{f}^{2}C_{f}}} \right)}{I_{z}v}}\end{bmatrix}}\underset{\underset{x}{︸}}{\begin{bmatrix}\beta \\\omega\end{bmatrix}}} + {\underset{\underset{B(v)}{︸}}{\begin{bmatrix}\frac{C_{f}}{mv} \\\frac{l_{f}C_{f}}{I_{z}}\end{bmatrix}}\delta_{f}} + {\begin{bmatrix}0 \\I_{z}\end{bmatrix}M_{z}}}} & (12)\end{matrix}$

Here, m represents the vehicle's mass, I_(z) represents the moment ofinertia of the vehicle 302 with respect to the vertical axis, l_(f) andl_(r) respectively represent distances from the center of gravity to thefront and rear axles of the vehicle 302, and C_(f), and C_(r)respectively represent the cornering stiffnesses of the front and rearwheels of the vehicle 302. Note that the cornering stiffnesses hererefer to single wheels and not to a full axle. To avoid unmeasurableside-slip angle, measurable lateral acceleration can be used and may beexpressed as follows.

a _(y)=ν·({dot over (β)}+ω)  (13)

Using a wheelbase L=l_(r)+l_(r), the yaw dynamics of the vehicle 302 canbe concisely expressed as follows.

$\begin{matrix}{\overset{.}{\omega} = {{{\underset{\underset{f_{\omega}}{︸}}{\frac{C_{f}C_{r}}{C_{f} + C_{r}}\frac{L^{2}}{I_{z}v}}\omega} + {\underset{\underset{f_{a}}{︸}}{\frac{m\left( {{l_{f}C_{f}} - {l_{r}C_{r}}} \right)}{I_{z}\left( {C_{f} + C_{r}} \right)}}a_{y}} + {\underset{\underset{f_{\delta}}{︸}}{\frac{C_{f}C_{r}}{C_{f} + C_{r}}\frac{L^{2}}{I_{z}}}\delta_{f}} + {\frac{1}{I_{z}}M_{z}}} = {{f_{\omega} \cdot \omega} + {f_{a} \cdot a_{y}} + {f_{\delta} \cdot \delta_{f}} + {\frac{1}{I_{z}}M_{z}}}}} & (14)\end{matrix}$

By defining the error between the actual yaw rate (ω) and the desiredyaw rate (ω_(d)) as s≙ω−ω_(d), the time derivative of the error and theoverall error dynamics can be written with the positive K>0 to make itconvergent, which can be expressed as follows.

{dot over (s)}={dot over (ω)}−{dot over (ω)} _(d) →{dot over(s)}=−K·s  (15)

{dot over (ω)}−{dot over (ω)}_(d) =−K·(ω−ω_(d))  (16)

From the concise form of the yaw dynamics shown above, the yaw momentcan be expressed as follows.

M _(z) =I _(z) ·[{dot over (ω)}−f _(ω) ·ω−f _(a) ·a _(y) −f_(δ)·δ_(f)]  (17)

The desired yaw moment for tracking the reference path 308 can thereforebe expressed as follows.

$\begin{matrix}{M_{z,d} = {{I_{z}\left\lbrack {\omega - {f_{\omega}\omega} - {f_{a}a_{y}} - {f_{\delta}\delta_{f}}} \right\rbrack} = {I_{z}\left\lbrack {{\overset{.}{\omega}}_{d} - {K \cdot \left( {\omega - \omega_{d}} \right)} - {f_{\omega}\omega} - {f_{a}a_{y}} - {f_{\delta}\delta_{f}}} \right\rbrack}}} & (18)\end{matrix}$

As can be seen here, the torque vectoring force distribution function114 a can determine the desired yaw moment from the desired yaw rate andthe desired yaw acceleration, which are based on the feedbacklinearization of full nonlinear kinematics and the single-trackdynamics.

Once the desired yaw moment to be used to (ideally) keep the vehicle 302following the reference path 308 is identified, the desired yaw momentis distributed to the various wheels of the vehicle 302 as wheel forces,which are converted into wheel torques via the effective dynamic radiiof the wheels. This can be expressed as follows.

$\begin{matrix}{M_{z,d} = {\left( {{- F_{left}} + F_{right}} \right) \cdot \frac{L_{w}}{2}}} & (19)\end{matrix}$

Here, F_(left)=F_(FL)+F_(RL) represents the sum of desired tire forceson the left side of the vehicle 302, which is based on a force at theleft front wheel, F_(FL), and a force at the left rear wheel, F_(RL).Also, F_(right)=F_(FR)+F_(RR) represents the sum of desired tire forceson the right side of the vehicle 302, which is based on a force at theright front wheel, F_(FR), and a force at the right rear wheel, F_(RR).In addition, L_(w) represents the length between left and right wheelsalong the same axle of the vehicle 302. The sum of forces equals thetotal wheel force, which can be expressed as follows.

F _(total) =F _(left) +F _(right)  (20)

The total force F_(total) can be defined by the maneuver required to beperformed by the vehicle 302. In the case of path tracking (with anaccelerating, constant-speed, or decelerating vehicle), there can be acorresponding force for each case. With two constraints (moment andforce), the forces on the left and right sides of the vehicle 302 can bedetermined, and the distribution of the forces to the front and rearportions of the vehicle 302 can be identified according to theacceleration from the total force. In some embodiments, this can beexpressed as follows.

$\begin{matrix}\left\{ \begin{matrix}{F_{FL} = {\alpha_{L} \cdot F_{left}}} \\{F_{RL} = {\left( {1 - \alpha_{L}} \right) \cdot F_{left}}}\end{matrix} \right. & (21) \\\left\{ \begin{matrix}{F_{FR} = {\alpha_{L} \cdot F_{right}}} \\{F_{RR} = {\left( {1 - \alpha_{L}} \right) \cdot F_{right}}}\end{matrix} \right. & (22)\end{matrix}$

Here, α_(L) is related to the required longitudinal acceleration, roadfriction, etc. The desired tire forces can be converted to wheeltorques, such as in the following manner.

T _(ij) =r _(eff) ·F _(ij)  (23)

Here, r_(eff) is the effective dynamic radius of a wheel. In this way,the torque vectoring force distribution function 114 a can determine howto distribute the desired yaw moment to the different wheels of thevehicle 302. As described below, the distributed desired yaw moment maybe implemented in various ways, such as braking, energy regeneration,and/or motor control.

Although FIG. 3 illustrates one example of autonomous lateral control300 of a vehicle 302 using direct yaw moment control, various changesmay be made to FIG. 3 . For example, the vehicle 302 may follow anyother suitable reference path, and the angles shown here can vary basedon the current location of the vehicle 302 along the reference path.

FIG. 4 illustrates an example method 400 for autonomous lateral controlof a vehicle using direct yaw moment control according to thisdisclosure. For ease of explanation, the method 400 shown in FIG. 4 isdescribed as being performed by the system 100 shown in FIG. 1 , whichmay include one of the vehicles 200, 250, 302 shown in FIGS. 2A, 2B, and3 . However, the method 400 shown in FIG. 4 may be performed using anyother suitable device or system.

As shown in FIG. 4 , sensor data associated with an environment around avehicle is obtained at step 402. This may include, for example, theprocessor 102 of a vehicle 200, 250, 302 or system 100 obtaininginformation from one or more sensors 104, such as image data from one ormore cameras 104 a. A reference path for the vehicle is identified atstep 404. This may include, for example, the processor 102 identifyingother vehicles, objects, lane-marking lines, and other features aroundthe vehicle 200, 250, 302 or system 100. This may also include theprocessor 102 predicting a behavior of the vehicle 200, 250, 302 orsystem 100 based on lane-marking lines and the predicted behaviors ofother vehicles or objects around the vehicle 200, 250, 302 or system100. This may further include the processor 102 selecting a desiredreference path 308 to be followed, such as by identifying a polynomialrepresenting a center of the traffic lane in which the vehicle 200, 250,302 or system 100 is traveling. A lateral movement of the vehicle thatis needed to follow the reference path is identified at step 406. Thismay include, for example, the processor 102 identifying a differencebetween a current location of a reference point of the vehicle 200, 250,302 or system 100 (such as its center point 306) and the desiredreference path 308.

A desired yaw rate and a desired yaw acceleration for the vehicle aredetermined at step 408. This may include, for example, the processor 102determining the desired yaw rate based on the lateral offset of thevehicle 200, 250, 302 or system 100 from the reference path 308 and theheading offset of the vehicle 200, 250, 302 or system 100 from thereference path 308. In some embodiments, this determination can be basedon full nonlinear kinematics of the vehicle 200, 250, 302 or system 100.This may also include the processor 102 determining the desired yawacceleration for the vehicle 200, 250, 302 or system 100 based on thefull nonlinear kinematics of the vehicle 200, 250, 302 or system 100 anda rate of curvature. As a particular example, this may include theprocessor 102 determining the desired yaw rate and the desired yawacceleration as shown above in Equations (1)-(11) above. A desired yawmoment for the vehicle is determined at step 410. This may include, forexample, the processor 102 determining the desired yaw moment based on adynamic model, the desired yaw rate, and the desired yaw acceleration.In some embodiments, the dynamic model may represent a linearsingle-track model. As a particular example, this may include theprocessor 102 determining the desired yaw moment as shown above inEquations (12)-(18) above.

A distribution of the desired yaw moment to the wheels of the vehicle isidentified at step 412 and applied at step 414. This may include, forexample, the processor 102 determining how to distribute the desired yawmoment to the various wheels 202 a-202 d, 252 a-252 d of the vehicle200, 250, 302 or system 100 as wheel forces, which are then convertedinto wheel torques. As a particular example, this may include theprocessor 102 determining the distribution of the desired yaw moment asshown above in Equations (19)-(23) above. The vehicle is moved laterallyto follow the reference path based on the distributed yaw moment at step416. This may include, for example, the vehicle 200, 250, 302 or system100 moving laterally to the left or right based on which side of thevehicle 200, 250, 302 or system 100 has wheels providing more torque andwhich side of the vehicle 200, 250, 302 or system 100 has wheelsproviding less torque.

Although FIG. 4 illustrates one example of a method 400 for autonomouslateral control of a vehicle using direct yaw moment control, variouschanges may be made to FIG. 4 . For example, while shown as a series ofsteps, various steps in FIG. 4 may overlap, occur in parallel, occur ina different order, or occur any number of times. As a particularexample, the steps of FIG. 4 may be repeatedly performed in anoverlapping manner so that a current lateral movement of the vehicle canbe determined and implemented while additional sensor data is beingreceived and processed to determine a future lateral movement of thevehicle.

FIG. 5 illustrates an example system 500 supporting path trackingcontrol for self-driving with yaw moment distribution according to thisdisclosure. The system 500 here includes many of the same componentsdescribed above with respect to the system 100 of FIG. 1 . As a result,common reference numbers are used in the systems 100 and 500 of FIGS. 1and 5 to refer to corresponding components in the systems 100 and 500.

As shown in FIG. 5 , the processor 102 of FIG. 5 performs the decisionplanning function 112, which here includes a path-tracking controlfunction 112 b. The path-tracking control function 112 b is similar tothe path-tracking control function 112 a in FIG. 1 in that thepath-tracking control function 112 b can be used to identify a desiredyaw rate and a desired yaw acceleration for the system 500. In addition,the path-tracking control function 112 b in FIG. 5 can be used todetermine a desired total longitudinal force to be applied to the system500 during path control. The total longitudinal force actually appliedto the system 500 represents the sum of all forces applied to the system500 in the longitudinal direction during path control, which may becalculated as the forward force(s) applied by one or more motors minusany backward force(s) applied by one or more braking systems, energyregeneration systems, or other systems. In some embodiments, the desiredtotal longitudinal force can be determined based on a desired speed ofthe system 500 during travel. For example, the decision planningfunction 112 can determine whether the system 500 should accelerate,decelerate, or maintain the same speed when traveling over the referencepath 308. Among other things, this determination can be based on whetherthe processor 102 decides to maintain a current travel speed, avoid apotential collision with another vehicle, or change the system's speedbased on an upcoming speed limit change. In general, the processor 102may use any suitable technique to identify a desired total longitudinalforce to be applied to the system 500 during travel.

The processor 102 of FIG. 5 also performs the one or more controlfunctions 114, which here includes a yaw moment distribution function114 b. The yaw moment distribution function 114 b includes functionalitythat is the same as or similar to the functionality of the torquevectoring force distribution function 114 a. That is, the yaw momentdistribution function 114 b can identify a desired yaw moment to beapplied to the system 500 and (if torque vectoring is used) distributethe desired yaw moment to different wheels of the system 500 in order toimplement the torque vectoring. However, since path control may beimplemented in various ways, including steering control and differenttypes of torque vectoring control, the yaw moment distribution function114 b can also determine a desired mechanism or mechanisms forimplementing the path control, which may or may not involve torquevectoring at any given time. In this example, the yaw momentdistribution function 114 b can use a desired response time and anenergy efficiency when determining how to implement the path control.The desired response time refers to the time in which a path change canoccur, and some functions (such as lane centering, lane keeping, andlane changing) may generally have longer response times than otherfunctions (such as evasive steering). The energy efficiency refers tothe fact that some torque vectoring techniques (such as energyregeneration) are more effective in terms of preserving energy orreducing energy usage than other torque vectoring techniques (such asbraking).

In some embodiments, the yaw moment distribution function 114 b mayoperate as follows. A desired yaw moment for the system 500 can bedetermined, such as in the manner described above. The yaw momentdistribution function 114 b may then have the option of implementing thedesired yaw moment using steering control only, using torque vectoringonly, or using a combination of steering control and torque vectoring.The steering control may be used to control the angle of a steeringwheel in the system 500, which controls the orientation of wheels of thesystem 500. The torque vectoring may be used to control differentialtorques applied by different wheels of the system 500. In some cases,the distribution of the desired yaw moment M_(z,d) can be expressed asfollows.

M _(z,d) =α·M _(z,steer)+(1−α)·M _(z,TV)  (24)

Here, M_(z,steer) represents the amount of yaw moment that isdistributed to steering control and M_(z,TV) represents the amount ofyaw moment that is distributed to torque vectoring. Also, α represents aweight, which in this example can have a value between zero and one(inclusive). Note that steering control can achieve a desired yaw momentmore quickly than torque vectoring, while torque vectoring can often beused to provide for smooth path tracking changes. In particularembodiments, the following can be used to define the value of the weightα, where PTC refers to path-tracking control.

$\begin{matrix}\left\{ \begin{matrix}{\alpha = {0:{Smooth}{PTC}}} \\{0 < \alpha \leq {1:{Emergency}{PTC}}}\end{matrix} \right. & (25)\end{matrix}$

During path-tracking operations related to functions such as lanecentering, lane keeping, or lane changing, the weight α may be set tozero. These functions also typically allow for considerations ofdifferent torque vectoring techniques that have different energyefficiencies. The weight α may be set to a value above zero duringemergency operations, such as those involving evasive steering, sincesteering control can provide a faster response time than torquevectoring. In this way, the weight α identifies an extent to whichtorque vectoring control is used to implement the desired yaw moment andan extent to which steering control is used to implement the desired yawmoment.

One example of this type of yaw moment allocation technique is shown inFIG. 6 , which illustrates an example allocation 600 of a desired yawmoment during path tracking control for self-driving according to thisdisclosure. The example allocation 600 shown in FIG. 6 is definedaccording to plots 602 and 604. The plot 602 identifies the distributionof the desired yaw moment between steering control and torque vectoringcontrol over time, and the plot 604 identifies the value of the weight αover time. As can be seen in FIG. 6 , the weight α can vary over timebased on whether smooth or rapid yaw moment changes are needed in orderto control the lateral position of the system 500. The torque vectoringcontrol tends to be smoother, while the steering control can be morerapid or abrupt. The transitions between the two control modes (the twoextreme values of the weight α) can be controlled in any suitablemanner, such as by using smooth or abrupt changes in the weight α.

Note that the amount of desired yaw moment can still vary even when theweight α has a constant value. For example, when the weight α equalszero, the system 500 may perform lane centering, lane keeping, or lanechanging operations. Often times, the desired yaw moments for lanekeeping may be less than or equal to the desired yaw moments for lanecentering, and the desired yaw moments for lane centering may be lessthan or equal to the desired yaw moments for lane changing (althoughthis is a generalization and is not necessarily required). Any of theseoperations may occur using only torque vectoring when the weight αequals zero.

As described above, torque vectoring may be performed in various waysusing braking control, energy regeneration control, and motor drivingcontrol. In some cases, torque vectoring performed via energyregeneration (also called regenerative braking) control may be usedduring lane centering and lane keeping, while torque vectoring performedvia braking control or motor driving control may be used during lanechanging. Note, however, that this is for illustration only and thatthese or other functions may be implemented using any suitable torquevectoring techniques. Different individual torque vectoring techniquesand different combinations of torque vectoring techniques may also beused depending on the circumstances. For instance, torque vectoring byenergy regeneration control (denoted “TVbR”) may be energy efficient andmay be used to decrease overall vehicle speed. Torque vectoring bybraking control (denoted “TVbB”) may be used to decrease overall vehiclespeed but may not be as energy efficient as torque vectoring by energyregeneration control. Torque vectoring by energy regeneration or brakingcontrol with motor driving control (denoted “TVbR, TVbD” or “TVbB,TVbD”) may be used to increase or maintain overall vehicle speed, andtorque vectoring by motor driving control (denoted “TVbD”) may be usedto increase or maintain the overall vehicle speed. Thus, energyregeneration control, braking control, and motor driving control (eitherindividually or in a suitable combination) may be used to both (i)control the total longitudinal force applied to the system 500 duringtravel and (ii) control the distribution of the desired yaw momentduring travel.

The yaw moment distribution function 114 b can use this type ofinformation in determining whether to allocate a desired yaw moment tosteering control or torque vectoring control. If torque vectoringcontrol is used, the yaw moment distribution function 114 b can use thistype of information to allocate the desired yaw moment to one or morespecific torque vectoring actuations. One example of this is shown inFIG. 7 , which illustrates an example identification of an allocationfor a desired yaw moment based on different torque vectoring approachesduring path tracking control for self-driving according to thisdisclosure.

As shown in FIG. 7 , the yaw moment distribution function 114 b can beused to determine which torque vectoring technique or techniques toselect for use. This is accomplished by calculating potential changes tothe yaw moment that are achievable using different torque vectoringtechnique(s) and potential changes to the total longitudinal force thatare achievable using the different torque vectoring technique(s). Forexample, the processor 102 may calculate the potential change to the yawmoment achievable using energy regeneration control only (ΔM_(z,TVbR)),the potential change to the yaw moment achievable using braking controlonly (ΔM_(z,TVbB)), the potential change to the yaw moment achievableusing energy regeneration control and motor driving control(ΔM_(z,TVbR, TVbD)), the potential change to the yaw moment achievableusing braking control and motor driving control (ΔM_(z,TVbB, TVbD)), andthe potential change to the yaw moment achievable using motor drivingcontrol only (ΔM_(z,TVbD)). Similarly, the processor 102 may calculatethe potential change to the total longitudinal force achievable usingenergy regeneration control only (ΔF_(x,TVbR)), the potential change tothe total longitudinal force achievable using braking control only(ΔF_(x,TVbB)), the potential change to the total longitudinal forceachievable using energy regeneration control and motor driving control(ΔF_(x,TVbR, TVbD)), the potential change to the total longitudinalforce achievable using braking control and motor driving control(ΔF_(x,TVbB, TVbD)), and the potential change to the total longitudinalforce achievable using motor driving control only (ΔF_(x,TVbD)). Basedon these calculations, the processor 102 can select one or more torquevectoring techniques that can provide a desired yaw moment and that canprovide a desired total longitudinal force.

One example of the type of results that may be obtained from thesecalculations is shown in FIG. 8 , which illustrates example potentialsof force and yaw moments from different torque vectoring approachesduring path tracking control for self-driving according to thisdisclosure. As shown in FIG. 8 , a graph 800 plots the potential changesto the total longitudinal force of the system 500 along the horizontalaxis and potential changes to the yaw moment of the system 500 along thevertical axis. In the graph 800, a plot 802 represents the potentialchanges to the total longitudinal force and yaw moment achievable usingenergy regeneration control only, and a plot 804 represents thepotential changes to the total longitudinal force and yaw momentachievable using braking control only. Also, a plot 806 represents thepotential changes to the total longitudinal force and yaw momentachievable using energy regeneration control and motor driving control,and a plot 808 represents the potential changes to the totallongitudinal force and yaw moment achievable using braking control andmotor driving control. In addition, a plot 810 represents the potentialchanges to the total longitudinal force and yaw moment achievable usingmotor driving control only.

The processor 102 can identify the desired yaw moment and the desiredtotal longitudinal force for the system 500 as described above. Theprocessor 102 can use the desired yaw moment and the desired totallongitudinal force with the plots 802-810 shown in FIG. 8 to identifywhich torque vectoring technique or techniques might be used to achievethe desired yaw moment and the desired total longitudinal force. Forexample, to increase the current total longitudinal force on the system500 in order to create a larger desired total longitudinal force on thesystem 500, the processor 102 may select motor driving control only toperform torque vectoring (since this is the only option in FIG. 8 thatachieves a positive total longitudinal force change in this example). Asa result, the processor 102 may control the driving of multiple motors,such as two or more of the motors 254 a-254 d, in order to performtorque vectoring in support of path tracking.

To decrease the current total longitudinal force on the system 500 inorder to create a smaller desired total longitudinal force on the system500, the processor 102 may select energy regeneration control only,braking control only, energy regeneration control and motor drivingcontrol, or braking control and motor driving control. In some cases,the specific technique(s) selected here for use in torque vectoring maybe based on the amount of decrease needed in the total longitudinalforce. Smaller decreases in the total longitudinal force on the system500 may be obtained using energy regeneration control only or brakingcontrol only, while larger decreases in the total longitudinal force onthe system 500 may be obtained using energy regeneration control andmotor driving control or braking control and motor driving control. Alsoor alternatively, in some cases, the specific technique(s) selected herefor use in torque vectoring may be based on the amount of yaw momentchanges needed. Smaller yaw moment changes may be obtained using energyregeneration control only or braking control only, while larger yawmoment changes may be obtained using energy regeneration control andmotor driving control or braking control and motor driving control. Anydesired or necessary changes in the yaw moments and any desired ornecessary changes in the total longitudinal force to be implemented bythe system 500 may be used by the processor 102 to select theappropriate torque vectoring technique(s) to be used to provide the yawmoment changes and the total longitudinal force changes.

To apply only steering control during path tracking, the weight α can beset to a value of one, which causes the desired yaw moment M_(z,d) to betotally allocated to M_(z,steer) as shown in Equation (24). This may benecessary or desirable, for example, when a faster response is neededfor path tracking. Direct or smooth transitions between allocations ofthe desired yaw moments M_(z,d) to M_(z,steer), and M_(z,TV) can beperformed as the weight α is switched between zero and one. Directtransitions involve changing the weight α from a value of zero to avalue of one directly (or vice versa), while indirect transitionsinvolve changing the weight α from a value of zero to a value of one (orvice versa) through one or more intermediate values between zero andone. In some cases, the weight α can switch between modes based on thefollowing conditions associated with the desired yaw moment M_(z,d).

$\begin{matrix}{\alpha = \left\{ \begin{matrix}{{1:M_{z,{Lth}}} < M_{z,d} < M_{z,{Uth}}} \\{{0:M_{z,d}} \leq {M_{z,{Lth}}{or}M_{z,d}} \geq M_{z,{Uth}}}\end{matrix} \right.} & (26)\end{matrix}$

Here, M_(z,Lth) and M_(z,Uth) represent lower and upper yaw momentthresholds, respectively. In other cases, the weight α can betransitioned between zero and one via a smooth transition function orother type of transition.

Although FIG. 5 illustrates one example of a system 500 supporting pathtracking control for self-driving with yaw moment distribution, variouschanges may be made to FIG. 5 . For example, various functions andcomponents shown in FIG. 5 may be combined, further subdivided,replicated, omitted, or rearranged and additional functions andcomponents may be added according to particular needs. Also, thefunctionality for path tracking control may be used in any othersuitable system, and the system may or may not relate to automotivevehicles or other vehicles.

Although FIG. 6 illustrates one example of an allocation of a desiredyaw moment, FIG. 7 illustrates one example of an identification of anallocation for a desired yaw moment based on different torque vectoringapproaches, and FIG. 8 illustrates examples of potentials of force andyaw moments from different torque vectoring approaches during pathtracking control for self-driving, various changes may be made to FIGS.6 through 8 . For instance, the weight α can be modified in any othersuitable manner and is not limited to the specific use shown in FIG. 6 .Also, the yaw moment distribution function 114 b can be used tocalculate potential yaw moment changes and potential total longitudinalforce changes for any other suitable torque vectoring technique(s) orfor any other suitable combination(s) of torque vectoring techniques. Inaddition, the results shown in FIG. 8 relate to possible implementationsof different torque vectoring techniques, and the same or differenttorque vectoring techniques may produce different results depending ontheir implementations.

FIG. 9 illustrates an example method 900 for path tracking control forself-driving with yaw moment distribution according to this disclosure.For ease of explanation, the method 900 shown in FIG. 9 is described asbeing performed by the system 500 shown in FIG. 5 , which may includeone of the vehicles 200, 250, 302 shown in FIGS. 2A, 2B, and 3. However,the method 900 shown in FIG. 9 may be performed using any other suitabledevice or system.

As shown in FIG. 9 , sensor data associated with an environment around avehicle is obtained at step 902. This may include, for example, theprocessor 102 of a vehicle 200, 250, 302 or system 500 obtaininginformation from one or more sensors 104, such as image data from one ormore cameras 104 a. A desired yaw moment and a desired totallongitudinal force to be applied to the vehicle is identified at step904. This may include, for example, the processor 102 using theapproaches described above to identify the desired yaw moment, identifythe desired yaw acceleration, and identify the desired yaw moment basedon the desired yaw moment and the desired yaw acceleration. This can bebased on a desired reference path 308 to be followed by the vehicle 200,250, 302. This may also include the processor 102 determining a desiredspeed of the vehicle 200, 250, 302 and using the desired speed toestimate the desired total longitudinal force to be applied to thevehicle 200, 250, 302. Note, however, that the processor 102 may use anyother suitable technique to identify the desired yaw moment to beapplied to the vehicle 200, 250, 302 and/or to identify the desiredtotal longitudinal force to be applied to the vehicle 200, 250, 302.

A weight for implementing the desired yaw moment and the desired totallongitudinal force is determined, where the weight identifies the amountof the desired yaw moment to be allocated to steering control and theamount of the desired yaw moment to be allocated to torque vectoringcontrol, at step 906. This may include, for example, the processor 102determining the weight α using the response times of the steeringcontrol and torque vectoring control techniques and the energyefficiencies of the steering control and torque vectoring controltechniques. As noted above, for instance, evasive steering or otheremergency maneuvers may require shorter response times, in which casethe weight α can be set to allocate more or all of the yaw moment tosteering control. Lane centering, lane keeping, and lane changing mayallow for longer response times, in which case the weight α can be setto allocate more or all of the yaw moment to torque vectoring control.

A determination is made whether torque vectoring will be used based onthe weight at step 908. If not, the process can skip to step 914.Otherwise, potential yaw moment changes and potential total longitudinalforce changes for different torque vectoring techniques are identifiedat step 910. This may include, for example, the processor 102 retrievingor calculating the potential yaw moment changes and the potential totallongitudinal force changes achievable using different individual torquevectoring techniques and different combinations of torque vectoringtechniques. One or more of the torque vectoring techniques are selectedbased on the potential yaw moment changes and the potential totallongitudinal force changes at step 912. This may include, for example,the processor 102 using the information about the different torquevectoring techniques to identify one or more torque vectoring techniquesthat can provide the desired yaw moment and the desired totallongitudinal force. If multiple torque vectoring techniques areidentified, this may also include the processor 102 selecting the torquevectoring technique or a combination of torque vectoring techniques thatprovides the best energy efficiency.

The desired yaw moment and the desired total longitudinal force areapplied to the vehicle using steering control and/or one or moreselected torque vectoring techniques at step 914. This may include, forexample, the processor 102 performing steering control only if theweight α is set to a value of one and performing torque vectoringcontrol only if the weight α is set to a value of zero. The applicationof the desired yaw moment and the desired total longitudinal forcecauses movement of the vehicle at step 916. This may include, forexample, the vehicle 200, 250, 302 or system 500 moving laterally basedon the applied yaw moment and longitudinally based on the applied totallongitudinal force.

Although FIG. 9 illustrates one example of a method 900 for pathtracking control for self-driving with yaw moment distribution, variouschanges may be made to FIG. 9 . For example, while shown as a series ofsteps, various steps in FIG. 9 may overlap, occur in parallel, occur ina different order, or occur any number of times. As a particularexample, the steps of FIG. 9 may be repeatedly performed in anoverlapping manner so that current yaw moment and longitudinal forcechanges can be determined and implemented while additional sensor datais being received and processed to determine future yaw moment andlongitudinal force changes.

Note that many functional aspects of the various embodiments describedabove can be implemented using any suitable hardware or any suitablecombination of hardware and software/firmware instructions. In someembodiments, at least some functional aspects of the various embodimentsdescribed above can be embodied as software instructions that areexecuted by one or more unitary or multi-core central processing unitsor other processing device(s). In other embodiments, at least somefunctional aspects of the various embodiments described above can beembodied using one or more application specific integrated circuits(ASICs). When implemented using one or more ASICs, any suitableintegrated circuit design and manufacturing techniques may be used, suchas those that can be automated using electronic design automation (EDA)tools Examples of such tools include tools provided by SYNOPSYS, INC.,CADENCE DESIGN SYSTEMS, INC., and SIEMENS EDA.

FIG. 10 illustrates an example design flow 1000 for employing one ormore tools to design hardware that implements one or more vehiclecontrol functions according to this disclosure. More specifically, thedesign flow 1000 here represents a simplified ASIC design flow employingone or more EDA tools or other tools for designing and facilitatingfabrication of ASICs that implement at least some functional aspects ofthe various embodiments described above.

As shown in FIG. 10 , a functional design of an ASIC is created at step1002. For any portion of the ASIC design that is digital in nature, insome cases, this may include expressing the digital functional design bygenerating register transfer level (RTL) code in a hardware descriptivelanguage (HDL), such as VHDL or VERILOG. A functional verification (suchas a behavioral simulation) can be performed on HDL data structures toensure that the RTL code that has been generated is in accordance withlogic specifications. In other cases, a schematic of digital logic canbe captured and used, such as through the use of a schematic captureprogram. For any portion of the ASIC design that is analog in nature,this may include expressing the analog functional design by generating aschematic, such as through the use of a schematic capture program. Theoutput of the schematic capture program can be converted (synthesized),such as into gate/transistor level netlist data structures. Datastructures or other aspects of the functional design are simulated, suchas by using a simulation program with integrated circuits emphasis(SPICE), at step 1004. This may include, for example, using the SPICEsimulations or other simulations to verify that the functional design ofthe ASIC performs as expected.

A physical design of the ASIC is created based on the validated datastructures and other aspects of the functional design at step 1006. Thismay include, for example, instantiating the validated data structureswith their geometric representations. In some embodiments, creating aphysical layout includes “floor-planning,” where gross regions of anintegrated circuit chip are assigned and input/output (I/O) pins aredefined. Also, hard cores (such as arrays, analog blocks, inductors,etc.) can be placed within the gross regions based on design constraints(such as trace lengths, timing, etc.). Clock wiring, which is commonlyreferred to or implemented as clock trees, can be placed within theintegrated circuit chip, and connections between gates/analog blocks canbe routed within the integrated circuit chip. When all elements havebeen placed, a global and detailed routing can be performed to connectall of the elements together. Post-wiring optimization may be performedto improve performance (such as timing closure), noise (such as signalintegrity), and yield. The physical layout can also be modified wherepossible while maintaining compliance with design rules that are set bya captive, external, or other semiconductor manufacturing foundry ofchoice, which can make the ASIC more efficient to produce in bulk.Example modifications may include adding extra vias or dummymetal/diffusion/poly layers.

The physical design is verified at step 1008. This may include, forexample, performing design rule checking (DRC) to determine whether thephysical layout of the ASIC satisfies a series of recommendedparameters, such as design rules of the foundry. In some cases, thedesign rules represent a series of parameters provided by the foundrythat are specific to a particular semiconductor manufacturing process.As particular examples, the design rules may specify certain geometricand connectivity restrictions to ensure sufficient margins to accountfor variability in semiconductor manufacturing processes or to ensurethat the ASICs work correctly. Also, in some cases, a layout versusschematic (LVS) check can be performed to verify that the physicallayout corresponds to the original schematic or circuit diagram of thedesign. In addition, a complete simulation may be performed to ensurethat the physical layout phase is properly done.

After the physical layout is verified, mask generation design data isgenerated at step 1010. This may include, for example, generating maskgeneration design data for use in creating photomasks to be used duringASIC fabrication. The mask generation design data may have any suitableform, such as GDSII data structures. This step may be said to representa “tape-out” for preparation of the photomasks. The GDSII datastructures or other mask generation design data can be transferredthrough a communications medium (such as via a storage device or over anetwork) from a circuit designer or other party to a photomasksupplier/maker or to the semiconductor foundry itself. The photomaskscan be created and used to fabricate ASIC devices at step 1012.

Although FIG. 10 illustrates one example of a design flow 1000 foremploying one or more tools to design hardware that implements one ormore vehicle control functions, various changes may be made to FIG. 10 .For example, at least some functional aspects of the various embodimentsdescribed above may be implemented in any other suitable manner.

FIG. 11 illustrates an example device 1100 supporting execution of oneor more tools to design hardware that implements one or more vehiclecontrol functions according to this disclosure. The device 1100 may, forexample, be used to implement at least part of the design flow 1000shown in FIG. 10 . However, the design flow 1000 may be implemented inany other suitable manner.

As shown in FIG. 11 , the device 1100 denotes a computing device orsystem that includes at least one processing device 1102, at least onestorage device 1104, at least one communications unit 1106, and at leastone input/output (I/O) unit 1108. The processing device 1102 may executeinstructions that can be loaded into a memory 1110. The processingdevice 1102 includes any suitable number(s) and type(s) of processors orother processing devices in any suitable arrangement. Example types ofprocessing devices 1102 include one or more microprocessors,microcontrollers, digital signal processors (DSPs), application specificintegrated circuits (ASICs), field programmable gate arrays (FPGAs), ordiscrete circuitry.

The memory 1110 and a persistent storage 1112 are examples of storagedevices 1104, which represent any structure(s) capable of storing andfacilitating retrieval of information (such as data, program code,and/or other suitable information on a temporary or permanent basis).The memory 1110 may represent a random access memory or any othersuitable volatile or non-volatile storage device(s). The persistentstorage 1112 may contain one or more components or devices supportinglonger-term storage of data, such as a read only memory, hard drive,Flash memory, or optical disc.

The communications unit 1106 supports communications with other systemsor devices. For example, the communications unit 1106 can include anetwork interface card or a wireless transceiver facilitatingcommunications over a wired or wireless network. The communications unit1106 may support communications through any suitable physical orwireless communication link(s).

The I/O unit 1108 allows for input and output of data. For example, theI/O unit 1108 may provide a connection for user input through akeyboard, mouse, keypad, touchscreen, or other suitable input device.The I/O unit 1108 may also send output to a display or other suitableoutput device. Note, however, that the I/O unit 1108 may be omitted ifthe device 1100 does not require local I/O, such as when the device 1100represents a server or other device that can be accessed remotely.

The instructions that are executed by the processing device 1102 includeinstructions that implement at least part of the design flow 1000. Forexample, the instructions that are executed by the processing device1102 may cause the processing device 1102 to generate or otherwiseobtain functional designs, perform simulations, generate physicaldesigns, verify physical designs, perform tape-outs, or create/usephotomasks (or any combination of these functions). As a result, theinstructions that are executed by the processing device 1102 support thedesign and fabrication of ASIC devices or other devices that implementone or more vehicle control functions described above.

Although FIG. 11 illustrates one example of a device 1100 supportingexecution of one or more tools to design hardware that implements one ormore vehicle control functions, various changes may be made to FIG. 11 .For example, computing and communication devices and systems come in awide variety of configurations, and FIG. 11 does not limit thisdisclosure to any particular computing or communication device orsystem.

In some embodiments, various functions described in this patent documentare implemented or supported using machine-readable instructions thatare stored on a non-transitory machine-readable medium. The phrase“machine-readable instructions” includes any type of instructions,including source code, object code, and executable code. The phrase“non-transitory machine-readable medium” includes any type of mediumcapable of being accessed by one or more processing devices or otherdevices, such as a read only memory (ROM), a random access memory (RAM),a Flash memory, a hard disk drive (HDD), or any other type of memory. A“non-transitory” medium excludes wired, wireless, optical, or othercommunication links that transport transitory electrical or othersignals. Non-transitory media include media where data can bepermanently stored and media where data can be stored and lateroverwritten.

It may be advantageous to set forth definitions of certain words andphrases used throughout this patent document. The terms “include” and“comprise,” as well as derivatives thereof, mean inclusion withoutlimitation. The term “or” is inclusive, meaning and/or. The phrase“associated with,” as well as derivatives thereof, may mean to include,be included within, interconnect with, contain, be contained within,connect to or with, couple to or with, be communicable with, cooperatewith, interleave, juxtapose, be proximate to, be bound to or with, have,have a property of, have a relationship to or with, or the like. Thephrase “at least one of,” when used with a list of items, means thatdifferent combinations of one or more of the listed items may be used,and only one item in the list may be needed. For example, “at least oneof: A, B, and C” includes any of the following combinations: A, B, C, Aand B, A and C, B and C, and A and B and C.

The description in the present application should not be read asimplying that any particular element, step, or function is an essentialor critical element that must be included in the claim scope. The scopeof patented subject matter is defined only by the allowed claims.Moreover, none of the claims invokes 35 U.S.C. § 112(f) with respect toany of the appended claims or claim elements unless the exact words“means for” or “step for” are explicitly used in the particular claim,followed by a participle phrase identifying a function. Use of termssuch as (but not limited to) “mechanism,” “module,” “device,” “unit,”“component,” “element,” “member,” “apparatus,” “machine,” “system,”“processor,” or “controller” within a claim is understood and intendedto refer to structures known to those skilled in the relevant art, asfurther modified or enhanced by the features of the claims themselves,and is not intended to invoke 35 U.S.C. § 112(f).

While this disclosure has described certain embodiments and generallyassociated methods, alterations and permutations of these embodimentsand methods will be apparent to those skilled in the art. Accordingly,the above description of example embodiments does not define orconstrain this disclosure. Other changes, substitutions, and alterationsare also possible without departing from the spirit and scope of thisdisclosure, as defined by the following claims.

What is claimed is:
 1. A method comprising: determining a desired yawmoment to be applied to an ego vehicle during travel; identifying yawmoment changes that are achievable using different torque vectoringtechniques supported by the ego vehicle; selecting at least one of thetorque vectoring techniques based on the identified yaw moment changes;and using the at least one selected torque vectoring technique to obtainthe desired yaw moment and create lateral movement of the ego vehicleduring the travel.
 2. The method of claim 1, further comprising:determining a weight that identifies an extent to which torque vectoringcontrol is used to implement the desired yaw moment and an extent towhich steering control is used to implement the desired yaw moment;wherein the at least one selected torque vectoring technique is used toobtain the desired yaw moment when the weight identifies a non-zeroextent for the torque vectoring control.
 3. The method of claim 2,further comprising: using the steering control to obtain the desired yawmoment and create the lateral movement of the ego vehicle during thetravel when the weight identifies a non-zero extent for the steeringcontrol.
 4. The method of claim 2, wherein the weight is based on adesired response time associated with the lateral movement of the egovehicle, the steering control providing a faster response time, thetorque vectoring control providing a slower response time.
 5. The methodof claim 1, further comprising: determining a desired longitudinal forceto be applied to the ego vehicle during the travel; and identifyinglongitudinal force changes that are achievable using the differenttorque vectoring techniques supported by the ego vehicle; wherein the atleast one torque vectoring technique is selected based on the identifiedyaw moment changes and the identified longitudinal force changes.
 6. Themethod of claim 1, wherein the at least one torque vectoring techniqueis selected based on different energy efficiencies associated withdifferent ones of the torque vectoring techniques.
 7. The method ofclaim 1, wherein the at least one selected torque vectoring techniquecomprises one or more of: using energy regeneration or regenerativebraking systems of the ego vehicle differently to create torquevectoring; using braking systems of the ego vehicle differently tocreate torque vectoring; and driving motors of the ego vehicledifferently to create torque vectoring.
 8. The method of claim 1,wherein the desired yaw moment is based on a lateral offset of the egovehicle from the identified path, a heading offset of the ego vehicle,and a rate of curvature of the identified path.
 9. An apparatuscomprising: at least one processing device configured to: determine adesired yaw moment to be applied to an ego vehicle during travel;identify yaw moment changes that are achievable using different torquevectoring techniques supported by the ego vehicle; select at least oneof the torque vectoring techniques based on the identified yaw momentchanges; and initiate use of the at least one selected torque vectoringtechnique to obtain the desired yaw moment and create lateral movementof the ego vehicle during the travel.
 10. The apparatus of claim 9,wherein: the at least one processing device is further configured todetermine a weight that identifies an extent to which torque vectoringcontrol is used to implement the desired yaw moment and an extent towhich steering control is used to implement the desired yaw moment; andthe at least one processing device is configured to initiate use of theat least one selected torque vectoring technique when the weightidentifies a non-zero extent for the torque vectoring control.
 11. Theapparatus of claim 10, wherein the at least one processing device isfurther configured to initiate use of the steering control to obtain thedesired yaw moment and create the lateral movement of the ego vehicleduring the travel when the weight identifies a non-zero extent for thesteering control.
 12. The apparatus of claim 10, wherein the weight isbased on a desired response time associated with the lateral movement ofthe ego vehicle, the steering control providing a faster response time,the torque vectoring control providing a slower response time.
 13. Theapparatus of claim 9, wherein: the at least one processing device isfurther configured to: determine a desired longitudinal force to beapplied to the ego vehicle during the travel; and identify longitudinalforce changes that are achievable using the different torque vectoringtechniques supported by the ego vehicle; and the at least one processingdevice is configured to select the at least one torque vectoringtechnique based on the identified yaw moment changes and the identifiedlongitudinal force changes.
 14. The apparatus of claim 9, wherein the atleast one processing device is configured to select the at least onetorque vectoring technique based on different energy efficienciesassociated with different ones of the torque vectoring techniques. 15.The apparatus of claim 9, wherein the at least one selected torquevectoring technique comprises one or more of: using energy regenerationor regenerative braking systems of the ego vehicle differently to createtorque vectoring; using braking systems of the ego vehicle differentlyto create torque vectoring; and driving motors of the ego vehicledifferently to create torque vectoring.
 16. A non-transitorymachine-readable medium containing instructions that when executed causeat least one processor to: determine a desired yaw moment to be appliedto an ego vehicle during travel; identify yaw moment changes that areachievable using different torque vectoring techniques supported by theego vehicle; select at least one of the torque vectoring techniquesbased on the identified yaw moment changes; and initiate use of the atleast one selected torque vectoring technique to obtain the desired yawmoment and create lateral movement of the ego vehicle during the travel.17. The non-transitory machine-readable medium of claim 16, furthercontaining instructions that when executed cause the at least oneprocessor to determine a weight that identifies an extent to whichtorque vectoring control is used to implement the desired yaw moment andan extent to which steering control is used to implement the desired yawmoment; wherein the instructions that when executed cause the at leastone processor to initiate use of the at least one selected torquevectoring technique comprise: instructions that when executed cause theat least one processor to initiate use of the at least one selectedtorque vectoring technique when the weight identifies a non-zero extentfor the torque vectoring control.
 18. The non-transitorymachine-readable medium of claim 17, further containing instructionsthat when executed cause the at least one processor to initiate use ofthe steering control to obtain the desired yaw moment and create thelateral movement of the ego vehicle during the travel when the weightidentifies a non-zero extent for the steering control.
 19. Thenon-transitory machine-readable medium of claim 17, wherein the weightis based on a desired response time associated with the lateral movementof the ego vehicle, the steering control providing a faster responsetime, the torque vectoring control providing a slower response time. 20.The non-transitory machine-readable medium of claim 16, furthercontaining instructions that when executed cause the at least oneprocessor to determine a desired longitudinal force to be applied to theego vehicle during the travel and identify longitudinal force changesthat are achievable using the different torque vectoring techniquessupported by the ego vehicle; wherein the instructions that whenexecuted cause the at least one processor to select the at least onetorque vectoring technique comprise: instructions that when executedcause the at least one processor to select the at least one torquevectoring technique based on the identified yaw moment changes and theidentified longitudinal force changes.
 21. The non-transitorymachine-readable medium of claim 16, wherein the instructions that whenexecuted cause the at least one processor to select the at least onetorque vectoring technique comprise: instructions that when executedcause the at least one processor to select the at least one torquevectoring technique based on different energy efficiencies associatedwith different ones of the torque vectoring techniques.
 22. Thenon-transitory machine-readable medium of claim 16, wherein the at leastone selected torque vectoring technique comprises one or more of: usingenergy regeneration or regenerative braking systems of the ego vehicledifferently to create torque vectoring; using braking systems of the egovehicle differently to create torque vectoring; and driving motors ofthe ego vehicle differently to create torque vectoring.